private static let contextQueue = DispatchQueue(label: "com.example.contextQueue")
static let sharedContext: CIContext = {
private static let contextQueue = DispatchQueue(label: "com.example.contextQueue")
static let sharedContext: CIContext = {
var cgImage: CGImage? {
var result: CGImage?
CVImageBuffer.contextQueue.sync {
let ciImage = CIImage(cvImageBuffer: self)
let width = CVPixelBufferGetWidth(self)
let height = CVPixelBufferGetHeight(self)
var cgImage: CGImage? {
var result: CGImage?
CVImageBuffer.contextQueue.sync {
let ciImage = CIImage(cvImageBuffer: self)
let width = CVPixelBufferGetWidth(self)
let height = CVPixelBufferGetHeight(self)
- result = CVImageBuffer.sharedContext.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: width, height: height))
+ result = CVImageBuffer.sharedContext.createCGImage(
+ ciImage, from: CGRect(x: 0, y: 0, width: width, height: height))